/*
 * structRaid.h
 *
 *  Created on: 20/09/2011
 *      Author: Romi - Luca
 *
 */

#ifndef STRUCTRAID_H_
#define STRUCTRAID_H_

#include <stdint.h>
#include <stdbool.h>



/* Estructura del paquete NIPC */

typedef struct {
	uint8_t type;
	uint16_t payload_length;
	char *proceso_solicitante;
	char tipo_solicitud; // Escritura(W) o lectura(R)
  //uintN_t payload; /* el tamaño lo determina el payload length (preguntar) */
} t_nipc;



/* Estructura de la lista de solicitudes, tanto lecturas como escrituras */

struct nodo_solicitud {
	int sector_requerido; /* investigar bien si es int */
	t_nipc paquete;
	struct nodo_solicitud *sgte;
};

typedef struct nodo_solicitud t_solicitud;



/* Estructura de la lista de discos */

struct nodo_lista_disco {
	int id_disco;            /* no sabemos bien el tipo de dato */
	char estado_disco;
	t_solicitud *cola_lectura;
	t_solicitud *cola_escritura;
	unsigned int lecturas_pendientes;
	unsigned int escrituras_pendientes;;
	struct nodo_lista_disco *sgte;
};

typedef struct nodo_lista_disco t_lista_discos;




#endif /* STRUCTRAID_H_ */

